import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 定义抽象类 Animal
abstract class Animal {
    private String name;
    private int age;

    // 带参构造方法
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter 和 Setter 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // 重写 toString 方法
    @Override
    public String toString() {
        return "Animal[name=" + name + ", age=" + age + "]";
    }
}

// 定义子类 Bird 继承 Animal
class Bird extends Animal {
    // 带参构造方法
    public Bird(String name, int age) {
        super(name, age);
    }

    // 重写 toString 方法
    @Override
    public String toString() {
        return "Bird[name=" + getName() + ", age=" + getAge() + "]";
    }
}

// 定义子类 Dog 继承 Animal，并添加属性 leg
class Dog extends Animal {
    private int leg;

    // 带参构造方法
    public Dog(String name, int age, int leg) {
        super(name, age);
        this.leg = leg;
    }

    // Getter 和 Setter 方法
    public int getLeg() {
        return leg;
    }

    public void setLeg(int leg) {
        this.leg = leg;
    }

    // 重写 toString 方法
    @Override
    public String toString() {
        return "Dog[leg=" + leg + ", name=" + getName() + ", age=" + getAge() + "]";
    }
}

// Main 类
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 定义列表，规定只能放 Dog 和 Bird
        List<Animal> list = new ArrayList<>();

        // 输入整数 n，表示向列表中加入的对象个数
        int n = scanner.nextInt();
        scanner.nextLine(); // 消耗换行符

        for (int i = 0; i < n; i++) {
            // 输入整数，判断是加入 Dog 还是 Bird
            int type = scanner.nextInt();
            scanner.nextLine(); // 消耗换行符

            if (type == 1) {
                // 加入 Dog 对象
                String name = scanner.next();
                int age = scanner.nextInt();
                int leg = scanner.nextInt();
                scanner.nextLine(); // 消耗换行符
                list.add(new Dog(name, age, leg));
            } else {
                // 加入 Bird 对象
                String name = scanner.next();
                int age = scanner.nextInt();
                scanner.nextLine(); // 消耗换行符
                list.add(new Bird(name, age));
            }
        }

        // 输出所有对象
        System.out.println(list);

        // 输入一个 name，判断是否存在该对象
        String searchName = scanner.next();
        boolean found = false;

        for (Animal animal : list) {
            if (animal.getName().equals(searchName)) {
                // 如果找到，输出类名和对象信息
                System.out.println(animal.getClass().getSimpleName());
                System.out.println(animal);
                found = true;
                break;
            }
        }

        if (!found) {
            System.out.println("no this one");
        }

        scanner.close();
    }
}